import { IPSRawItemBase } from './ipsraw-item-base';
import { IPSSysImage } from '../res/ipssys-image';
import { IPSModelObject } from '../ipsmodel-object';

/**
 *
 * 继承父接口类型值[RAWITEM|RAWITEM|RAWITEM]
 * @export
 * @interface IPSRawItemContainer
 */
export interface IPSRawItemContainer extends IPSModelObject {
  /**
   * 内容类型
   * @description 值模式 [直接内容类型] {RAW：直接内容、 HTML：Html内容、 IMAGE：图片、 MARKDOWN：Markdown、 VIDEO：视频、 PLACEHOLDER：占位、 DIVIDER：分割线、 INFO：常规提示、 WARNING：警告提示、 ERROR：错误提示、 USER：用户自定义、 USER2：用户自定义2 }
   * @type {( string | 'RAW' | 'HTML' | 'IMAGE' | 'MARKDOWN' | 'VIDEO' | 'PLACEHOLDER' | 'DIVIDER' | 'INFO' | 'WARNING' | 'ERROR' | 'USER' | 'USER2')}
   */
  contentType:
    | string
    | 'RAW'
    | 'HTML'
    | 'IMAGE'
    | 'MARKDOWN'
    | 'VIDEO'
    | 'PLACEHOLDER'
    | 'DIVIDER'
    | 'INFO'
    | 'WARNING'
    | 'ERROR'
    | 'USER'
    | 'USER2';

  /**
   * 直接内容对象
   *
   * @type {IPSRawItemBase}
   */
  getPSRawItem(): IPSRawItemBase | null;

  /**
   * 图片内容
   *
   * @type {IPSSysImage}
   */
  getPSSysImage(): IPSSysImage | null;

  /**
   * 直接项高度
   * @type {number}
   * @default 0.0
   */
  rawItemHeight: number;

  /**
   * 直接项宽度
   * @type {number}
   * @default 0.0
   */
  rawItemWidth: number;
}
